import bisect
import collections
import heapq
import math
import sys
from sys import maxsize
sys.setrecursionlimit(10**6)
p2D = lambda x: print(*x, sep="\n")
def II(): return int(sys.stdin.buffer.readline())
def MI(): return map(int, sys.stdin.buffer.readline().split())
def LI(): return list(map(int, sys.stdin.buffer.readline().split()))
def LLI(rows_number): return [LI() for _ in range(rows_number)]
def BI(): return sys.stdin.buffer.readline().rstrip()
def SI(): return sys.stdin.buffer.readline().rstrip().decode()
def li(): return [int(i) for i in input().split()]
def lli(rows): return [li() for _ in range(rows)]
def si(): return input()
def ii(): return int(input())
def ins(): return input().split()
def drank(d, processing, da, rank):
tmp = 10 ** 9
if len(d[da]) == 1:
return 1
for di in d[da]:
if processing[di - 1] == 0:
processing[di - 1] = 1
tmp = min(tmp, drank(d, processing, di, rank))
processing[di - 1] = 0
rank[da - 1] = tmp + 1
return tmp + 1
def gcd(a,b):
if b==0:
x = 1
y = 0
return x, y, a
x, y, g = gcd(b, a%b)
return y, x- (a//b)*y, g
import heapq
def dis(cd, dd, da, root):
x = root
while x!=[]:
z = []
for xi in x:
da[xi - 1] = cd
y = dd[xi]
for yi in y:
if da[yi - 1] == -1:
z.append(yi)
x = z.copy()
cd+=1
return da
def solve():
n, m = li()
if m == 0: return n
l, r = max(0, n - m), n + m
ans,x = 0, 1
while l >= 0:
x = 2 ** (int(math.log2(r)))
ans += x
l, r = l - x, r - x
return ans+x-1
def main():
for _ in range(ii()):
sys.stdout.write(str(solve()) + "\n")
if __name__ == "__main__":
main()
1302. Deepest Leaves Sum | 1209. Remove All Adjacent Duplicates in String II |
994. Rotting Oranges | 983. Minimum Cost For Tickets |
973. K Closest Points to Origin | 969. Pancake Sorting |
967. Numbers With Same Consecutive Differences | 957. Prison Cells After N Days |
946. Validate Stack Sequences | 921. Minimum Add to Make Parentheses Valid |
881. Boats to Save People | 497. Random Point in Non-overlapping Rectangles |
528. Random Pick with Weight | 470. Implement Rand10() Using Rand7() |
866. Prime Palindrome | 1516A - Tit for Tat |
622. Design Circular Queue | 814. Binary Tree Pruning |
791. Custom Sort String | 787. Cheapest Flights Within K Stops |
779. K-th Symbol in Grammar | 701. Insert into a Binary Search Tree |
429. N-ary Tree Level Order Traversal | 739. Daily Temperatures |
647. Palindromic Substrings | 583. Delete Operation for Two Strings |
518. Coin Change 2 | 516. Longest Palindromic Subsequence |
468. Validate IP Address | 450. Delete Node in a BST |